﻿#region << 版 本 注 释 >>
/*----------------------------------------------------------------
 * 版权所有 (c) 2022   保留所有权利。
 * CLR版本：4.0.30319.42000
 * 机器名称：DESKTOP-UL84BU5
 * 公司名称：
 * 命名空间：KingerRobot.PCRQuartz
 * 唯一标识：9e3bde55-7544-49cf-a9dd-cbaa39e65e23
 * 文件名：WcsTask
 * 当前用户域：DESKTOP-UL84BU5
 * 
 * 创建者：zzl
 * 电子邮箱：1003590782@qq.com
 * 创建时间：2022/6/21 10:57:42
 * 版本：V1.0.0
 * 描述：定时生成任务
 *
 * ----------------------------------------------------------------
 * 修改人：
 * 时间：
 * 修改说明：
 *
 * 版本：V1.0.1
 *----------------------------------------------------------------*/
#endregion << 版 本 注 释 >>

namespace KingerRobot.PCRQuartz;

internal class WcsTask
{
    private readonly static object _Lock = new object();

    #region 创建出库任务到任务表中
    /// <summary>
    /// 创建出库任务到任务表中
    /// </summary>
    public void CreateGanyOutTask()
    {
        try
        {
            lock (_Lock)
            {
                var task = K8.RSF.Client.Create<IWarehousService>();
                task.CreateExWarehouseTask(10010101);
            }
        }
        catch (Exception ex)
        {
            K8.LSF.Client.Log(new K8.LSF.Log { Data =$"生成出库任务失败：{ex.Message}"  });
        }
    }
    #endregion

    #region 定时根据产品锁表锁定库位
    /// <summary>
    /// 定时根据产品锁表锁定库位
    /// </summary>
    public void SyncProductLock()
    {
        try
        {
            var mesLockService = K8.RSF.Client.Create<IMesProductLockService>();
            mesLockService.UpdateLoctionLock();
        }
        catch (Exception ex)
        {
            this.WriteLog($"产品锁表锁定库位异常-{ex.ToString()}");
        }

    }

    #endregion

    #region 获取设备网络状态
    /// <summary>
    /// 获取设备网络状态
    /// </summary>
    public void EquipStatus()
    {
        //var status = K8.RSF.Client.Create<IEquipStatusService>();
        //status.PingEquip();
    }

    #endregion

    #region 文件日志（运行需要 Nlog 配置）
    private void WriteLog(string message)
    {
        K8.LSF.Client.Log(new K8.LSF.Log { Data = message });
    }
    #endregion
}